#ifndef REQUEST_SENDER_H
#define REQUEST_SENDER_H

#include <QObject>
#include "client_network.h"
#include "message_util.h"

class RequestSender : public QObject
{
    Q_OBJECT
public:
    explicit RequestSender(ClientNetwork *network,QObject *parent = nullptr);
    ~RequestSender();
    // 发送登录请求
    void sendLoginRequest(const QString &username, const QString &password);
    // 发送注册请求
    void sendRegisterRequest(const QString &username, const QString &password);
    // 发送私聊消息
    void sendPrivateChat(const QString &sender, const QString &receiver, const QString &text);
    // 发送群聊消息
    void sendGroupChat(const QString &sender, const QString &groupId, const QString &text);
    // 发送添加好友请求
    void sendAddFriendRequest(const QString &userId, const QString &friendId);
    // 发送移除好友请求
    void sendRemoveFriendRequest(const QString &userId, const QString &friendId);
    // 发送创建群组请求
    void sendCreateGroupRequest(const QString &userId, const QString &groupName);
    // 发送添加群成员请求
    void sendAddGroupMemberRequest(const QString &groupId, const QString &memberId);
    // 发送移除群成员请求
    void sendRemoveGroupMemberRequest(const QString &groupId, const QString &memberId);
    // 发送获取群消息请求
    void sendGetGroupMessagesRequest(const QString &groupId);

private:
    ClientNetwork *network;
};

#endif // REQUEST_SENDER_H
